package com.zl.autocode.service.generator;

import com.zl.autocode.common.utils.generator.model.ConvertConfig;
import com.zl.autocode.dto.generator.ReqCodeGenereatorDTO;
import com.zl.autocode.dto.generator.ReqGetFirstTemplateOtherDTO;
import com.zl.autocode.dto.generator.ReqInitComponentTableDTO;
import com.zl.autocode.dto.generator.ReqLoadTableDTO;
import com.zl.autocode.dto.generator.ReqLoadTemplateDTO;
import com.zl.autocode.dto.generator.ResLoadTableDTO;
import com.zl.autocode.dto.generator.ResLoadTemplateDTO;
import com.zl.autocode.entity.autocode.po.ZLCfgGenerateVo;
import com.zl.common.dto.ReqDTO;

/**
 * 
 * @author ZL
 */
public interface IGeneratorService {
    /** 直接把已存在的表解析保存*/
    ResLoadTableDTO doInitialTables(ReqDTO<ReqLoadTableDTO> reqInfo,ConvertConfig iConfig) throws Exception;
    /** 由实体对象转为表结构再保存*/
    ResLoadTableDTO doInitialTablesByEntity(ReqDTO<ReqLoadTableDTO> reqInfo,ConvertConfig iConfig) throws Exception;
    
    /** 查询项目基本配置*/
    void queryProjectTableConfig(ReqDTO<ReqLoadTableDTO> reqInfo, ConvertConfig iConfig) throws Exception;

    /** 保存模板文件明细信息*/
    ResLoadTemplateDTO doInitialTemplateDtl(ReqDTO<ReqLoadTemplateDTO> reqInfo) throws Exception;

    /** 查询最终配置*/
    ZLCfgGenerateVo queryCfgGenerate(ReqDTO<ReqCodeGenereatorDTO> reqInfo) throws Exception;
    
    /** 查询使用哪个模板,DDL、预览等*/
    String getFirstTempateOther(ReqGetFirstTemplateOtherDTO reqData,String type) throws Exception;
    
    /** 查询使用哪个模板,DDL、预览等*/
    void doInitialProjectWebComponent(ReqDTO<ReqInitComponentTableDTO> reqInfo,String dictType) throws Exception;

}